package com.holyant.report.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.domain.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 供应商产品仓库动销统计dto
 * 
 * @author holyant
 * @date 2021-09-22
 */
@Data
@ApiModel("供应商产品仓库动销统计")
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RptCustomerSkuWarehouseGmvDto extends BaseDto {

    private static final long serialVersionUID = 1L;

    /** 销量 */
    @Excel(name = "销量")
    @ApiModelProperty(value = "销量")
    private BigDecimal salesQty;

    /** 销售额 */
    @Excel(name = "销售额")
    @ApiModelProperty(value = "销售额")
    private BigDecimal salesAmount;

    /** 账期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "账期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "账期")
    private LocalDate accountDate;

    /** skuid */
    @Excel(name = "skuid")
    @ApiModelProperty(value = "skuid")
    private Long skuId;

    /** sku名称 */
    @Excel(name = "sku名称")
    @ApiModelProperty(value = "sku名称")
    private String skuName;

    /** 失效日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "失效日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "失效日期")
    private LocalDate expireDate;

    /** 商品id */
    @Excel(name = "商品id")
    @ApiModelProperty(value = "商品id")
    private Long goodsId;

    /** 商品名称 */
    @Excel(name = "商品名称")
    @ApiModelProperty(value = "商品名称")
    private String goodsName;

    /** 商品条码 */
    @Excel(name = "商品条码")
    @ApiModelProperty(value = "商品条码")
    private String barcode;

    /** 品牌id */
    @Excel(name = "品牌id")
    @ApiModelProperty(value = "品牌id")
    private Long brandId;

    /** 品牌名称 */
    @Excel(name = "品牌名称")
    @ApiModelProperty(value = "品牌名称")
    private String brandName;

    /** 客户id */
    @Excel(name = "客户id")
    @ApiModelProperty(value = "客户id")
    private Long customerId;

    /** 客户名称 */
    @Excel(name = "客户名称")
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /** 仓库id */
    @Excel(name = "仓库id")
    @ApiModelProperty(value = "仓库id")
    private Long warehouseId;

    /** 仓库名称 */
    @Excel(name = "仓库名称")
    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    /** 备注 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /**
     * 库存数量（包含锁定冻结库存）
     * in - out
     */
    @Excel(name = "库存数量（包含锁定冻结库存）")
    @ApiModelProperty(value = "库存数量（包含锁定冻结库存）")
    private BigDecimal allQty;

    /** 采购在途数量 */
    @ApiModelProperty(value = "采购在途数量")
    private BigDecimal purchaseTransitQty;

    /**
     * 时间范围
     */
    private String valueDate;

}
